package com.mbengue.corp.apr.ra.dao;

import java.util.List;

import org.hibernate.HibernateException;

import com.mbengue.corp.apr.ra.core.Membre;

/**
 * Gere l'ajout, la modification, la suppression et la recherche de membre
 * @author MMB11447
 *
 */
public interface MembreDao {
  /**
   * Ajoute un nouveau membre a la base de donnees
   * 
   * @param membre {@link Membre} a ajouter
   * @throws HibernateException
   */
  public void ajouterMembre(Membre membre) throws HibernateException;

  /**
   * Retrouve le membre dont l'email est donne en entree
   * 
   * @param email {@link String} du membre a trouver
   * @return {@link Membre}
   */
  public Membre trouverMembre(String email);

  /**
   * Supprime le membre de la base de donnees
   * 
   * @param membre
   * @throws HibernateException
   */
  public void supprimer(Membre membre) throws HibernateException;

  /**
   * Met à jour le membre
   * 
   * @param membre
   * @throws HibernateException
   */
  public void update(Membre membre) throws HibernateException;

  /**
   * Retourne la liste de tous les membres
   * 
   * @return {@link Membre}
   */
  public List<Membre> tousLesMembres();
}
